ans = []


def dfs(num, res, row):
    if row == num:
        ans.append(res)
        # print(res)
        return
    for col in range(num):
        if check(col, res, row):
            res[row] = col
            dfs(num, res, row + 1)
            res[row] = 0


def check(col, res, row):
    for i in range(row):
        if res[i] == col or res[i] + i == row + col or res[i] - i == col - row:
            return False
    return True


if __name__ == '__main__':
    # num: 皇后的数量
    num = int(input('请输入皇后的数量：'))

    # 最终皇后的位置 （下标：第几行 数值：第几列）
    res = [0 for _ in range(num)]

    # 从第一行开始
    row = 0

    # 参数：皇后总数  位置结果  当前放置第几行
    dfs(num, res, row)

    print(len(ans))
